403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python313/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python313/Lib/test/__pycache__/test_tempfile.cpython-313.pyc
�

��i�9���SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSK
r
SSKrSSKJr SSKrSSKJr SSKJr SSKJr SSKJr \R.\R0:gr\"\S5r\R8R;S5(aS	rOS
r"SS\R>5r "S
S\R>5r!"SS\!5r""SS\!5r#"SS\!5r$"SS\!5r%"SS\!5r&\RNS5r(Sr)"SS5r*"SS\*\!5r+"SS \!5r,"S!S"\!5r-"S#S$\!5r."S%S&\*\!5r/"S'S(\!5r0"S)S*\!5r1"S+S,\!5r2\Rf\RhLa"S-S.\!5r5"S/S05r6"S1S2\!5r7\8S3:Xa\Rr"5 gg)4�N)�mock)�support)�	os_helper)�
script_helper)�warnings_helper�spawnl�openbsd�0�dc�2�\rSrSrSrSrSrSrSrSr	g)	�TestLowLevelInternals�(c��UR[[R"S55 UR[[R"S55 UR[[R"S55 g�N��)�assertIs�str�tempfile�_infer_return_type�bytes��selfs �'C:\Python313\\Lib\test\test_tempfile.py�test_infer_return_type_singles�4TestLowLevelInternals.test_infer_return_type_singles)sM���
�
�c�8�6�6�r�:�;��
�
�e�X�8�8��=�>��
�
�c�8�6�6�t�<�=rc���UR[[R"SS55 UR[[R"SS55 UR[5 [R"SS5 SSS5 UR[5 [R"SS5 SSS5 g!,(df   ND=f!,(df   g=fr�rrrrr�assertRaises�	TypeErrorrs r� test_infer_return_type_multiples�6TestLowLevelInternals.test_infer_return_type_multiples.s����
�
�c�8�6�6�r�2�>�?��
�
�e�X�8�8��c�B�C�
�
�
�y�
)��'�'��C�0�*�
�
�
�y�
)��'�'��R�0�*�
)�*�
)��
)�
)�s�,C�!C�
C�
C!c���UR[[R"SS55 UR[[R"SS55 UR[[R"SS55 UR[[R"SS55 UR[[R"SS55 UR[5 [R"SSS5 SSS5 UR[5 [R"SSS5 SSS5 g!,(df   NE=f!,(df   g=frrrs r�)test_infer_return_type_multiples_and_none�?TestLowLevelInternals.test_infer_return_type_multiples_and_none6s����
�
�c�8�6�6�t�R�@�A��
�
�c�8�6�6�r�4�@�A��
�
�c�8�6�6�t�T�B�C��
�
�e�X�8�8��d�C�D��
�
�e�X�8�8��s�C�D�
�
�
�y�
)��'�'��D�#�6�*�
�
�
�y�
)��'�'��T�2�6�*�
)�*�
)��
)�
)�s�-E�#E�
E�
E$c��UR[[R"[R
"S555 g)N�/)rrrrr�FakePathrs r�test_infer_return_type_pathlib�4TestLowLevelInternals.test_infer_return_type_pathlibAs&���
�
�c�8�6�6�y�7I�7I�#�7N�O�Prc	��[RnUR[[R
"U"S555 UR[[R
"U"S555 UR[[R
"SU"S555 UR[[R
"SU"S555 UR[[R
"SU"S555 UR[[R
"SU"S555 UR[5 [R
"SU"S55 SSS5 UR[5 [R
"SU"S55 SSS5 g!,(df   NJ=f!,(df   g=f)Nr'�/rr)	rr(rrrrrrr )r�Paths  r�test_infer_return_type_pathlike�5TestLowLevelInternals.test_infer_return_type_pathlikeDs$���!�!���
�
�c�8�6�6�t�C�y�A�B��
�
�e�X�8�8��d��D�E��
�
�c�8�6�6�r�4��8�D�E��
�
�e�X�8�8��d�3�i�H�I��
�
�e�X�8�8��t�C�y�I�J��
�
�c�8�6�6�t�T�"�X�F�G�
�
�
�y�
)��'�'��D��I�6�*�
�
�
�y�
)��'�'��T�"�X�6�*�
)�*�
)��
)�
)�s�
F,�F=�,
F:�=
G�N)
�__name__�
__module__�__qualname__�__firstlineno__rr!r$r)r.�__static_attributes__r0rrr
r
(s��>�
1�	7�Q�7rr
c�h�\rSrSr\R
"S5r\R
"S5rSrSr	Sr
g)�BaseTestCase�Tz^[a-z0-9_-]{8}$s^[a-z0-9_-]{8}$c��UR[R"55 [R"S[
S[S9 g)N�ignore�mktemp)�category�message�module)�enterContextr�check_warnings�warnings�filterwarnings�RuntimeWarningr1rs r�setUp�BaseTestCase.setUpYs1�����/�8�8�:�;�����>�(0��	Crc��[RRU5upVUS[U5nU[U5[U5-
SnUbWUR	[U5[U5[Ld[U[R5(a[O[S5 Ub8UR	[U5[U5[La[O[S5 Ub8UR	[U5[U5[La[O[S5 X#U4S:Xa UR	[U5[S5 UR[RRU5[RRU5SU<SU<35 URXsSU<SU<35 URX�SU<SU<35 U[U5[U5[U5-
n[U[5(aUROURn	URU	RU5SU<S	U	R <35 g)
Nzunexpected return type�NNNzdefault return type must be strzfile z not in directory z does not begin with z does not end with zrandom characters z do not match )�os�path�split�lenr�typer�
isinstance�PathLiker�assertEqual�abspath�	str_check�b_check�
assertTrue�match�pattern)
r�name�dir�pre�suf�ndir�nbase�npre�nsuf�checks
          r�	nameCheck�BaseTestCase.nameCheck^s������
�
�d�+�
���i�s�3�x� ���c�%�j��S��)�*�+���?��M�M��T�
���9��#�z�#�r�{�{�'C�'C���(�
��?��M�M�$�t�*�T�#�Y�#�-=�c�5�2�
4��?��M�M�$�t�*�T�#�Y�#�-=�c�5�2�
4��c�?�0�0��M�M�$�t�*�c�+L�M�	
���������.�������0D�:>��D�	F�����s�=B�C�H�	J�����s�;@�#�F�	H��c�#�h�s�5�z�#�c�(�2�3��",�U�C�"8�"8����d�l�l��������E�*� �%�-�-�1�	2rr0N)r1r2r3r4�re�compilerQrRrDr_r5r0rrr7r7Ts+���
�
�-�.�I��j�j�,�-�G�C�
"2rr7c��\rSrSrSrSrg)�TestExports�c���[RnSSSSSSSSSSSSSSS.n/nUH&nUSS:wdMXB;dMURU5 M( UR[	U5S:HSU-5 g)N�)�NamedTemporaryFile�
TemporaryFile�mkstemp�mkdtempr;�TMP_MAX�
gettempprefix�gettempprefixb�
gettempdir�gettempdirb�tempdir�template�SpooledTemporaryFile�TemporaryDirectoryr�_zunexpected keys: %s)r�__dict__�appendrSrK)r�dict�expected�unexp�keys     r�test_exports�TestExports.test_exports�s���� � ��$%������� �����%&�#$�
��"���C��1�v��}��!4����S�!��	
����E�
�a��-��5�	7rr0N)r1r2r3r4r|r5r0rrrdrd�s��7rrdc�l^�\rSrSrSrU4SjrSrSrSr\	R"5S5rSrU=r
$)	�TestRandomNameSequence�z6Test the internal iterator object _RandomNameSequence.c�V>�[R"5Ul[TU]5 g�N)r�_RandomNameSequence�r�superrD�r�	__class__s �rrD�TestRandomNameSequence.setUp�s����-�-�/���
��
�rc�V�[UR5nURUSSS5 g�Nr)�nextr�r_)r�ss  r�test_get_eight_char_str�.TestRandomNameSequence.test_get_eight_char_str�s!������L�����q�"�b�"�%rc��0nURn[[5H7n[U5nUR	USSS5 URXA5 SX'M9 g)Nrrg)r��range�
TEST_FILESr�r_�assertNotIn)rrxr��ir�s     r�	test_many� TestRandomNameSequence.test_many�sQ�����F�F���z�"�A��Q��A��N�N�1�b�"�b�)����Q�%��D�G�	#rc�L�SnURnUHnUS-
nUS:XdM g g)Nrrg��r�)rr�r�r�s    r�
supports_iter�$TestRandomNameSequence.supports_iter�s/��
���F�F���A�
��F�A��B�w��rc�:�[R"5upSn[R"5nU(d{[R"U5 [R"U[UR5RS55 [R"U5 [R"S5 [UR5n[R"U[U55RS5nU(a[R"USS9 [R"U5 [R"U5 URXT5 g!U(a[R"USS9 [R"U5 [R"U5 f=f)N�asciir)�exitcode)rH�pipe�fork�close�writer�r��encode�_exit�readrK�decoder�wait_process�assertNotEqual)r�read_fd�write_fd�pid�parent_value�child_values      r�test_process_awareness�-TestRandomNameSequence.test_process_awareness�s���G�G�I�����	��'�'�)�C������!�����4����<�#6�#6�w�#?�@�����"������ ����<�L��'�'�'�3�|�+<�=�D�D�W�M�K���$�$�S�1�5��H�H�W���H�H�X�����K�6����$�$�S�1�5��H�H�W���H�H�X��s
�CE�A
Fr�)r1r2r3r4�__doc__rDr�r�r�r�
requires_forkr�r5�
__classcell__�r�s@rrr�s7���@��&�
	��
����7��7rrc�$�\rSrSrSrSrSrSrg)�TestCandidateTempdirList��z3Test the internal function _candidate_tempdir_list.c��[R"5nUR[U5S:H5 UHnUR	U[
5 M g�Nr)r�_candidate_tempdir_list�assertFalserK�assertIsInstancer)r�cand�cs   r�test_nonempty_list�+TestCandidateTempdirList.test_nonempty_list�sB���/�/�1������T��a��(��A��!�!�!�S�)�rc�2�[R"5nSHCn[R"U5nU(aM"[RRU5X'ME [R"5nSH7n[R"U5nU(d[eURX45 M9 [R"5nURX45 SSS5 g![[4a [RnN<f=f!,(df   g=f)N)�TMPDIR�TEMP�TMP)r�EnvironmentVarGuardrH�getenvrIrPrr��
ValueError�assertIn�getcwd�AttributeError�OSError�curdir)r�env�envname�dirnamer�s     r�test_wanted_dirs�)TestCandidateTempdirList.test_wanted_dirs�s����
*�
*�
,��2���)�)�G�,���w�#%�7�7�?�?�7�#;�C�L�3�
�3�3�5�D�2���)�)�G�,���j� 0��
�
�g�,�3�

$��)�)�+��
�M�M�'�(�%-�
,��#�G�,�
$��)�)��
$��-�
,�s5�!D�A7D�3C"�D�" D�D�D�D�
Dr0N)r1r2r3r4r�r�r�r5r0rrr�r��s��=�*�)rr�c��\rSrSrSrSrSrg)�TestGetDefaultTempdiri
zTest _get_default_tempdir().c	��^�[R"5mU4Sjn[R"[SU5 [R"5 UR[R"T5/5 Sn[R"[SU5 UR[5 [R"5 SSS5 UR[R"T5/5 SSS5 [R"[SU5 UR[5 [R"5 SSS5 UR[R"T5/5 SSS5 SSS5 SSS5 g!,(df   N�=f!,(df   N�=f!,(df   No=f!,(df   NR=f!,(df   N[=f!,(df   g=f)Nc�
>�T/$r�r0)�our_temp_directorys�r�our_candidate_list�KTestGetDefaultTempdir.test_no_files_left_behind.<locals>.our_candidate_lists���*�+�+rr�c��[5er�)r�)�args�kwargss  r�
raise_OSError�FTestGetDefaultTempdir.test_no_files_left_behind.<locals>.raise_OSErrors	��!�)�Or�openr�)
rrtr�	swap_attr�_get_default_tempdirrOrH�listdirr�FileNotFoundError)rr�r�r�s   @r�test_no_files_left_behind�/TestGetDefaultTempdir.test_no_files_left_behind
sK���
�
(�
(�
*�.@�
,��"�"�8�-F�#5�7��-�-�/�� � ����,>�!?��D�$��&�&�r�6�=�A��*�*�+<�=� �5�5�7�>��$�$�R�Z�Z�0B�%C�R�H�	B��&�&�r�7�M�B��*�*�+<�=� �5�5�7�>��$�$�R�Z�Z�0B�%C�R�H�	C�7�+�
*� >�=��B�A��>�=��C�B��7�7��+�
*�s��#G�AG
�F�+F	�.F�/$G
�F9�)F(	�?.F9�-G
�5G�
F
�F�
F%�!G
�(
F6
�2F9�9
G�G
�

G	�G�
G)r0N)r1r2r3r4r�r�r5r0rrr�r�
s��&�Irr�c�$�\rSrSrSrSrSrSrg)�TestGetCandidateNamesi*z0Test the internal function _get_candidate_names.c�n�[R"5nURU[R5 gr�)r�_get_candidate_namesr�r�)r�objs  r�test_retval�!TestGetCandidateNames.test_retval-s&���+�+�-�����c�8�#?�#?�@rc�|�[R"5n[R"5nURXL5 gr�)rr�rS)r�a�bs   r�test_same_thing�%TestGetCandidateNames.test_same_thing2s,���)�)�+���)�)�+�������rr0N)r1r2r3r4r�r�r�r5r0rrr�r�*s��:�A�
 rr�c#�# �[R"5n[R"[SU5 Sv� SSS5 [R
"U5 g!,(df   N%=f![R
"U5 f=f7f)Nrq)rrkrr�r�rmtree�rWs r�_inside_empty_temp_dirr�:s[���
�
�
�
�C��
�
�
�x��C�
8��9�	�����9�
8��	�����s2�B�A*�A�A*�B�
A'�#A*�*B�Bc�D^�[R"[SU4Sj5$)Nr�c�>�[T5$r�)�iter��namess�r�<lambda>�'_mock_candidate_names.<locals>.<lambda>Gs	���T�%�[r)rr�rr�s`r�_mock_candidate_namesr�Ds������X�3�0�2�2rc�f�\rSrSr\R
"\RS5S5rSr	Sr
Srg)�TestBadTempdiriJz$Emscripten cannot remove write bits.c	���[5 [RR[R
S5n[RS:XaQS[R
SS/n[RS:�aSO[Rn[R"USUS9 O�[R"[R
5R=pEU[R[R-[R -)-n[R"n[R$"[R
U5 [R&"U5 [R("U5 UR+S	5 UR/[,5 UR15 SSS5 [RS:Xa+S[R
S
S/n[R"USWS9 O&[R$"[R
W5 UR3[R4"[R
5/5 SSS5 g![,a N�f=f!,(df   N�=f![RS:Xa+S[R
S
S/n[R"USWS9 f[R$"[R
W5 f=f!,(df   g=f)N�probe�nt�icaclsz/denyzEveryone:(W)rgT)r^�stdoutz!can't set the directory read-onlyz/grant:rzEveryone:(M))r�rHrI�joinrrqrVr�verbose�
subprocess�DEVNULL�run�stat�st_mode�S_IWUSR�S_IWGRP�S_IWOTH�S_IREAD�chmod�mkdir�rmdir�skipTest�PermissionErrorr�	make_temprOr�)rr��cmdr�oldmode�modes      r�test_read_only_directory�'TestBadTempdir.test_read_only_directoryLs���$�
%��G�G�L�L��!1�!1�7�;�E��w�w�$����!1�!1�7�N�K��!(���1�!4��*�:L�:L�����s�$�v�>�!#����)9�)9�!:�!B�!B�B���$�,�,����5����D�E�E���|�|������)�)�4�0�
8�G��H�H�U�O��H�H�U�O��M�M�"E�F��&�&��7��N�N�$�8��7�7�d�?�#�X�%5�%5�z�>�R�C��N�N�3�d�6�B��H�H�X�-�-�w�7����R�Z�Z��(8�(8�9�2�>�=&�
%��'�����8�7���7�7�d�?�#�X�%5�%5�z�>�R�C��N�N�3�d�6�B��H�H�X�-�-�w�7��;&�
%�s\�D.K�;I�<I)�
I�I)�&BK�
I�I)�I�I)�
I&	�"I)�)A&K�K�
K c��[5 [RR[R
S5n[R"[SU5 UR[5 UR5 SSS5 SSS5 SSS5 g!,(df   N=f!,(df   N(=f!,(df   g=f)N�nonexistentrq)r�rHrIrrrqrr�rr�r�rrqs  r�test_nonexisting_directory�)TestBadTempdir.test_nonexisting_directoryps|��
#�
%��g�g�l�l�8�#3�#3�]�C�G��"�"�8�Y��@��&�&�'8�9��N�N�$�:�A�&�
%�:�9��A�@��&�
%�s<�AB8�B'�,B�=B'�B8�
B$� B'�'
B5	�1B8�8
Cc���[5 [RR[R
S5n[
US5R5 [R"[SU5 UR[[45 UR5 SSS5 SSS5 SSS5 g!,(df   N=f!,(df   N(=f!,(df   g=f)N�file�wbrq)r�rHrIrrrqr�r�rr�r�NotADirectoryErrorr�rrs  r�test_non_directory�!TestBadTempdir.test_non_directoryws���
#�
%��g�g�l�l�8�#3�#3�V�<�G���$��%�%�'��"�"�8�Y��@��&�&�(:�<M�'N�O��N�N�$�P�A�&�
%�P�O��A�@��&�
%�s<�A%C�0C�B6�C�%C�6
C�C�
C	�C�
C&r0N)r1r2r3r4�unittest�skipIfr�
is_emscriptenrrr!r5r0rrr�r�Js4��
�_�_����E��?��?�B%�%rr�c��\rSrSrSr"SS5rSSjrSrSrS	r	S
r
\RS5r
\R"\S5\R$"5S
55r\R"\S5S5rSrSrSrSrg)�TestMkstempInner�z*Test the internal function _mkstemp_inner.c��\rSrSr\R
r\Rr\	Rr\	Rr
SrSrSrSrg)�TestMkstempInner.mkstempedi�c��U(a
URnOURn[R"XU5n[R"XX5U5uUlUlgr�)�_bflags�_tflagsrr�_mkstemp_inner�fdrV)rrWrXrY�bin�flags�output_types       r�__init__�#TestMkstempInner.mkstemped.__init__�sF���D�L�L�E� �L�L�E�"�5�5�c��D�K�#+�#:�#:�3�S�Q\�#]� �T�W�d�irc�F�[R"URU5 gr�)rHr�r/)rrs  rr�� TestMkstempInner.mkstemped.write�s���H�H�T�W�W�c�"rc�p�URUR5 URUR5 gr�)�_closer/�_unlinkrVrs r�__del__�"TestMkstempInner.mkstemped.__del__�s"���K�K���� ��L�L����#r)r/rVN)r1r2r3r4r�_bin_openflagsr,�_text_openflagsr-rHr�r8�unlinkr9r3r�r:r5r0rr�	mkstempedr*�s:���)�)���*�*�������)�)��	^�	#�	$rr?Nc�(�[R"XU5nUc4U[La[R"5nO[R"5nUcU"5nUcU"5nURXX45nUR
URXU5 U$r�)rrrrorpr?r_rV)rrWrXrYr0r2rs       r�	do_create�TestMkstempInner.do_create�s~���1�1�#�C�@���;��c�!��)�)�+���*�*�,���;��-�C��;��-�C��~�~�c��1�����t�y�y�#�C�0��rc�6�UR5RS5 URSS9RS5 URSS9RS5 URSSS9RS5 URSSS9RS5 g)	N�blatr��rXr��rY�rXrY�aa�.txt)rAr�rs r�
test_basic�TestMkstempInner.test_basic�s��������w�'����3���%�%�g�.����3���%�%�g�.����3�C��(�.�.�w�7����4�V��,�2�2�7�;rc�>�[R"5nURUSS9RS5 URUSS9RS5 URUSS9RS5 URUSSS9RS5 URUSS	S9RS5 UR	[
5 URS
SS9RS5 SSS5 UR	[
5 URUS
S9RS5 SSS5 UR	[
5 URUSS
S9RS5 SSS5 g!,(df   N�=f!,(df   N^=f!,(df   g=f)Nr�rWrYrD�a�rWrX�b�rWrXrY�aa�.txtr)rrprAr�rr )r�dir_bs  r�test_basic_with_bytes_names�,TestMkstempInner.test_basic_with_bytes_names�sC���$�$�&�����5�c��*�0�0��9����5�d��+�1�1�'�:����5�d��+�1�1�'�:����5�d���5�;�;�G�D����5�e���9�?�?��H�
�
�
�y�
)��N�N�r�s�N�+�1�1�'�:�*�
�
�
�y�
)��N�N�u�"�N�-�3�3�G�<�*�
�
�
�y�
)��N�N�u�#�2�N�6�<�<�W�E�*�
)�	*�
)��
)�
)��
)�
)�s$� E,� E=�!F�,
E:�=
F�
Fc�h�[[[55nUHnURSS9X'M g�NrHrE)�listr�r�rA�r�extantr�s   r�test_basic_many� TestMkstempInner.test_basic_many�s-���e�J�'�(���A����4��0�F�I�rc��[R"5nURUS9RS5 UR[R
"U5S9RS5 [R"5 [R"U5 g![R"5 [R"U5 f=f�Nr�rD)
rrkrAr�rr(r�
gc_collectrHr�rrWs  r�test_choose_directory�&TestMkstempInner.test_choose_directory�s������ ��	��N�N�s�N�#�)�)�'�2��N�N�y�1�1�#�6�N�7�=�=�g�F���� ��H�H�S�M��
��� ��H�H�S�M�s�AB�-Cc��UR5n[R"[R"UR5R
5nSn[RS:Xa
US-	nUS-nURX#5 g)Nr(�win32��I)	rAr�S_IMODErHrVr�sys�platformrO)rrrry�users     r�test_file_mode�TestMkstempInner.test_file_mode�se���~�~����|�|�B�G�G�D�I�I�.�6�6�7�����<�<�7�"��q�=�D��z�*�H�����(rzos.spawnl not availablec�&�[R(aSnOSnUR5nUR[R
"UR5S5 SUR-n[n[RR[RR[RRU55S5n[RS:XaS[R -nSU-nO[R n[R""[R$[R XeX5nUR'US:S	U*-5 UR'US:�S
U-5 g![a [RSnGNf=f)N�v�qFz%drztf_inherit_check.pyrez"%s"z$child process caught fatal signal %dz child process reports failure %d)rrrArOrH�get_inheritabler/�__file__�	NameErrorri�argvrIrr�rPrj�
executabler�P_WAITr�)rrorr/�me�tester�	decorated�retvals        r�test_noinherit�TestMkstempInner.test_noinherit�s+��
�?�?��A��A��~�~�������+�+�D�G�G�4�e�<�
�D�G�G�^��	��B������b�g�g�o�o�b�g�g�o�o�b�.A�B�3�5���<�<�7�"�����/�I��f�_�F����I����2�9�9�c�n�n�i��O������!��:�f�W�D�	F�����!��%G��%N�O��+�	����!��B�	�s�+E/�/F�Fztext mode not availablec�(�URSS9nURS5 URS5 [R"URS[R
5 UR
[R"URS5S5 g)Nr)r0sblatsextra
r�rD)rAr�rH�lseekr/�SEEK_SETrOr��r�fs  r�
test_textmode�TestMkstempInner.test_textmodesc��

�N�N�q�N�!��	�����	���
��
������q�"�+�+�&����������r�*�G�4rc��[R"[R"5[R"5S[R[
5$r�)rr.rormr<rrs rr�TestMkstempInner.make_temps;���&�&�x�':�':�'<�'/�'=�'=�'?�')�'/�'>�'>�'*�	,�	,rc��[5 [SSS5 UR5up[R"U5 URUR
S55 UR5up4[R"U5 URUR
S55 SSS5 SSS5 g!,(df   N=f!,(df   g=f�N�aaa�bbb)r�r�rrHr�rS�endswith)r�fd1�name1�fd2�name2s     r�!test_collision_with_existing_file�2TestMkstempInner.test_collision_with_existing_files���$�
%�
"�5�%��
7��>�>�+�L�S��H�H�S�M��O�O�E�N�N�5�1�2��>�>�+�L�S��H�H�S�M��O�O�E�N�N�5�1�2�8�&�
%�
7�
7��&�
%�s#�C�BB;�*C�;
C		�C�
Cc��[5 [SSS5 [R"5nUR	URS55 UR
5up#[R"U5 UR	URS55 SSS5 SSS5 g!,(df   N=f!,(df   g=fr�)	r�r�rrkrSr�rrHr�)rrWr/rVs    r�&test_collision_with_existing_directory�7TestMkstempInner.test_collision_with_existing_directory$s���$�
%�
"�5�%��
7��"�"�$�C��O�O�C�L�L��/�0����)�J�R��H�H�R�L��O�O�D�M�M�%�0�1�
8�&�
%�
7�
7��&�
%�s#�B9�A>B(�B9�(
B6	�2B9�9
Cr0)NNNrg)r1r2r3r4r�r?rArJrUr\rbr�skip_unless_working_chmodrlr#�
skipUnless�
has_spawnlr�requires_subprocessr{�has_textmoder�rr�r�r5r0rrr'r'�s���4�$�$�(� <�F�"1���(�(�)�)�)�����%>�?�� � �"�#P�#�@�#P�J����'@�A�5�B�5�,�3�
2rr'c�$�\rSrSrSrSrSrSrg)�TestGetTempPrefixi1zTest gettempprefix().c��[R"5nURU[5 UR	[U5S5 [R"5nURU[5 UR	[U5S5 gr�)rrmr�r�
assertGreaterrKrnr)r�p�pbs   r�test_sane_template�$TestGetTempPrefix.test_sane_template4sf���"�"�$�����a��%����3�q�6�1�%�
�
$�
$�
&�����b�%�(����3�r�7�A�&rc���[R"5S-n[R"SS9n[RRX!5n[R"U[R[R-5n[R"U5 [R"U5 [R"U5 g![R"U5 f=f)Nz
xxxxxx.xxxr��prefix)rrmrkrHrIrr��O_RDWR�O_CREATr�r>r)rr��dr/s    r�test_usable_template�&TestGetTempPrefix.test_usable_template@s���
�"�"�$�|�3�����B�'��	������Q�"�A�����B�I�I��
�
�2�3�B��H�H�R�L��I�I�a�L��H�H�Q�K��B�H�H�Q�K�s�BC�Cr0N)r1r2r3r4r�r�r�r5r0rrr�r�1s���
'�rr�c�0�\rSrSrSrSrSrSrSrSr	g)	�TestGetTempDiriQzTest gettempdir().c�b�[R"5[R"54H�nUR[R
R
U5=(d U[R:HSU-5 UR[R
RU5SU-5 M� g)Nz%r is not an absolute pathz%r is not a directory)	rrorprSrHrI�isabsr��isdir�rr�s  r�test_directory_exists�$TestGetTempDir.test_directory_existsTsy���%�%�'��)=�)=�)?�@�A��O�O�B�G�G�M�M�!�,�>��R�Y�Y��8�1�<�
>��O�O�B�G�G�M�M�!�,�3�a�7�
9�Arc��[R"5nURS5 SSS5 g!,(df   g=f)NrD)rrhr�)rrs  r�test_directory_writable�&TestGetTempDir.test_directory_writable]s*���
(�
(�
*�d��J�J�w��+�
*�
*�s�1�
?c�:�[R"5n[R"5n[R"5nURXL5 UR	[U5[U55 UR
U[R"U55 gr�)	rrorprSr�rLrOrH�fsdecode)rr�r�r�s    rr��TestGetTempDir.test_same_thingfsj�����!�����!��� � �"�����������D��G�T�!�W�-�����B�K�K��N�+rc��[R"S5n[RSsn[l[R"5nXS'UR[R"5U5 SSS5 U[l[R"U5 g!,(df   N0=f!U[l[R"U5 f=f)Nz-Tempr�)rrkrqrr�rOror)r�case_sensitive_tempdir�_tempdirr�s    r�test_case_sensitive�"TestGetTempDir.test_case_sensitiveps���"*�!1�!1�'�!:��%-�%5�%5�t�"��(�"�	4��.�.�0�C� 6�H�
�� � ��!4�!4�!6�8N�O�1�
 (�H���O�O�2�3�
1�0��
 (�H���O�O�2�3�s#�B.�	*B�3B.�
B+�'B.�.#Cr0N)
r1r2r3r4r�r�r�r�r�r5r0rrr�r�Qs���9� �,�4rr�c�:�\rSrSrSrS
SjrSrSrSrSr	S	r
g)�TestMkstempizTest mkstemp().Nc	��[R"XU5nUc4U[La[R"5nO[R"5nUcU"5nUcU"5n[R
"XUS9upV[RRU5upx[RRU5n	URX�SU	<SU<S35 URXaX#5 [R"U5 [R"U5 g![R"U5 [R"U5 f=f)N�rWr��suffixzDirectory 'z' incorrectly returned as '�')rrrrorprjrHrIrJrPrOr_r�r>)
rrWrXrYr2r/rVrZr[�adirs
          rrA�TestMkstemp.do_create�s����1�1�#�C�@���;��c�!��)�)�+���*�*�,���;��-�C��;��-�C��%�%�#�#�F�
�����
�
�d�+�
���w�w���s�#������t�=A�4�H�	J�	��N�N�4�c�/��H�H�R�L��I�I�d�O��
�H�H�R�L��I�I�d�O�s�D�.Ec��UR5 URSS9 URSS9 URSSS9 URSSS9 URSS	9 g)
Nr�rEr�rFrGrHrI�.r��rArs rrJ�TestMkstemp.test_basic�sV���������3������3������3�C��(����4�V��,����3��rc�p�[R"5nURUSS9 URUSS9 URUSS9 URUSSS9 URUSSS9 URS	S
9 UR[5 URSSSS9 SSS5 UR[5 URS	SSS9 SSS5 UR[5 URS	SS
S9 SSS5 g!,(df   Nm=f!,(df   NO=f!,(df   g=f)NrrMrNrOrPrQrRrS�.r�r�rHrI)rrprArr r�s  rrU�'TestMkstemp.test_basic_with_bytes_names�s���
� � �"�����1�#��&����1�$��'����1�$��'����1�$�D��1����1�%�W��5����4�� �
�
�
�y�
)��N�N�s��7�N�;�*�
�
�
�y�
)��N�N�t��7�N�;�*�
�
�
�y�
)��N�N�t��F�N�;�*�
)�	*�
)��
)�
)��
)�
)�s$�D�;D�*D'�
D�
D$�'
D5c��[R"5nURUS9 UR[R"U5S9 [
R"U5 g![
R"U5 f=f�Nr�)rrkrArr(rHrras  rrb�!TestMkstemp.test_choose_directory�sS����� ��	��N�N�s�N�#��N�N�y�1�1�#�6�N�7��H�H�S�M��B�H�H�S�M�s�2A � A8c�|�[RnUR[R[[	S545 [R
"5up#[R"U5 [R"U5 URU[5 [R"5[lUR[R[5 UR[R"5[5 UR[R"5[5 [R
"5up#[R"U5 [R"U5 URU[5 [R
"SS9up#[R"U5 [R"U5 URU[5 [R
"SS9up#[R"U5 [R"U5 URU[5 [R
"[R"5S9up#[R"U5 [R"U5 URU[5 U[lg!U[lf=f)NrI�r�z
test-temp-r�r�)rrqr�rrLrjrHr�r>rprro)r�orig_tempdirr/rIs    r�.test_for_tempdir_is_bytes_issue40701_api_warts�:TestMkstemp.test_for_tempdir_is_bytes_issue40701_api_warts�s����'�'�����h�.�.��d�4�j�0A�B�	,��'�'�)�H�B��H�H�R�L��I�I�d�O��!�!�$��,�'�3�3�5�H���!�!�(�"2�"2�E�:��!�!�(�"5�"5�"7��=��!�!�(�"6�"6�"8�%�@��'�'�)�H�B��H�H�R�L��I�I�d�O��!�!�$��.��'�'�v�6�H�B��H�H�R�L��I�I�d�O��!�!�$��,��'�'�|�<�H�B��H�H�R�L��I�I�d�O��!�!�$��,��'�'�H�,?�,?�,A�B�H�B��H�H�R�L��I�I�d�O��!�!�$��,�+�H���|�H��s
�I!J.�.
J;r0rG)r1r2r3r4r�rArJrUrbr�r5r0rrr�r�s����. �<�$�,rr�c���\rSrSrSrSrSSjrSrSrSr	S	r
\RS
5r
\R"\R"S:HS5S
5rSrSrSrSrSrg)�TestMkdtempi�zTest mkdtemp().c�,�[R"5$r�)rrkrs rr�TestMkdtemp.make_temp�s�����!�!rNc�R�[R"XU5nUc4U[La[R"5nO[R"5nUcU"5nUcU"5n[R
"XUS9nUR
XQX#5 U$! [R"U5 e=f)Nr�)	rrrrorprkr_rHr)rrWrXrYr2rVs      rrA�TestMkdtemp.do_create�s����1�1�#�C�@���;��c�!��)�)�+���*�*�,���;��-�C��;��-�C����C�C�@��	��N�N�4�c�/��K��	��H�H�T�N��s�9B
�
B&c�h�[R"UR55 [R"URSS95 [R"URSS95 [R"URSSS95 [R"URSSS95 g�Nr�rEr�rFrGrHrI)rHrrArs rrJ�TestMkdtemp.test_basic�su��
������!�"�
������C��(�)�
������C��(�)�
������C�S��1�2�
������D�f��5�6rc	��[R"5n[R"UR	US95 [R"UR	USS95 [R"UR	USS95 [R"UR	USSS95 [R"UR	USSS95 UR[5 [R"UR	US	SS95 SSS5 UR[5 [R"UR	USS
S95 SSS5 UR[5 [R"UR	SSSS95 SSS5 g!,(df   N�=f!,(df   Nc=f!,(df   g=f)Nr�rNrOrPrMrQrRrSrHrIr)rrprHrrArr r�s  rrU�'TestMkdtemp.test_basic_with_bytes_names�s3��� � �"��
������A��&�'�
������A�4��0�1�
������A�4��0�1�
������A�4�T��:�;�
������A�5�g��>�?�
�
�
�y�
)��H�H�T�^�^��t��^�A�B�*�
�
�
�y�
)��H�H�T�^�^��u�&�^�A�B�*�
�
�
�y�
)��H�H�T�^�^���7�^�C�D�*�
)�	*�
)��
)�
)��
)�
)�s$� &F�#&F&�&&F7�
F#�&
F4�7
Gc�L�[[[55nUHnURSS9X'M UH0n[	U[
5(dM[R"U5 M2 g!UH0n[	U[
5(dM[R"U5 M2 f=frX)rYr�r�rArMrrHrrZs   rr\�TestMkdtemp.test_basic_manysy���e�J�'�(��	 ��� �N�N�t�N�4��	�����a��%�%��H�H�Q�K���V���a��%�%��H�H�Q�K��s�A+�+B#�B#c�F�[R"5n[R"UR	US95 [R"UR	[
R"U5S95 [R"U5 g![R"U5 f=fr�)rrkrHrrArr(ras  rrb�!TestMkdtemp.test_choose_directoryse����� ��	��H�H�T�^�^��^�,�-��H�H�T�^�^�	�(:�(:�3�(?�^�@�A��H�H�S�M��B�H�H�S�M�s�AB�B c�\�UR5n[R"[R"U5R5nUS-nSn[
RS:Xa
US-	nUS-nURX#5 [R"U5 g![R"U5 f=f)Ni�i�rerfrg)	rArrhrHrrirjrOr)rrWrryrks     r�	test_mode�TestMkdtemp.test_mode"s����n�n���	��<�<������ 4� 4�5�D��E�M�D��H��|�|�w�&� �1�}���:�.�����T�,��H�H�S�M��B�H�H�S�M�s�A*B�B+r��Only on Windows.c��UR5n[R"SU/SS9R5n[R
"U5 UR5n[
5nSnUR5R5H�nSnURU5(a URU5R5nO/U(a(USSR5(aUR5nU(dMsURURS5S5 M� URSR5U5 g![R
"U5 f=f)	Nz
icacls.exe�oem��encodingFrg�:rz
BUILTIN\Users)rAr�check_output�casefoldrHr�set�strip�
splitlines�
startswith�removeprefix�isspace�add�	partitionr�)rrW�out�users�
found_user�line�acls       r�test_mode_win32�TestMkdtemp.test_mode_win324s	���n�n���	��)�)�<��*=��N�W�W�Y�C��H�H�S�M��l�l�n������
��I�I�K�*�*�,�D��C����s�#�#��'�'��,�2�2�4���$�r��(�*�*�,�,��j�j�l���s��	�	�#�-�-��,�Q�/�0�-�	
���)�2�2�4�e�<��
�H�H�S�M�s�%E�Ec��[5 [SSS5 [R"SS9nUR	5 URURRS55 [R"5nURURS55 SSS5 SSS5 g!,(df   N=f!,(df   g=f)Nr�r�F��delete)	r�r�rrhr�rSrVr�rk)rrrWs   rr��-TestMkdtemp.test_collision_with_existing_fileOs���$�
%�
"�5�%��
7��.�.�e�<�D��J�J�L��O�O�D�I�I�.�.�u�5�6��"�"�$�C��O�O�C�L�L��/�0�8�&�
%�
7�
7��&�
%�s#�B?�BB.�B?�.
B<	�8B?�?
C
c�n�[5 [SSS5 [R"5nUR	URS55 [R"5nUR	URS55 SSS5 SSS5 g!,(df   N=f!,(df   g=fr�)r�r�rrkrSr�)r�dir1�dir2s   rr��2TestMkdtemp.test_collision_with_existing_directoryZsy��$�
%�
"�5�%��
7��#�#�%�D��O�O�D�M�M�%�0�1��#�#�%�D��O�O�D�M�M�%�0�1�	8�&�
%�
7�
7��&�
%�s#�B&�A+B�B&�
B#	�B&�&
B4c��[RnUR[R[[	S545 [R
"5n[R"U5 URU[5 [R"5[lUR[R[5 UR[R"5[5 UR[R"5[5 [R
"5n[R"U5 URU[5 [R
"SS9n[R"U5 URU[5 [R
"SS9n[R"U5 URU[5 [R
"[R"5S9n[R"U5 URU[5 U[lg!U[lf=f)Nz-dirr�z
test-mkdtemp-r�r�)rrqr�rrLrkrHrrprro)rr�rIs   rr��:TestMkdtemp.test_for_tempdir_is_bytes_issue40701_api_wartsdsw���'�'�����h�.�.��d�4�j�0A�B�	,��#�#�%�D��H�H�T�N��!�!�$��,�'�3�3�5�H���!�!�(�"2�"2�E�:��!�!�(�"5�"5�"7��=��!�!�(�"6�"6�"8�%�@��#�#�%�D��H�H�T�N��!�!�$��.��#�#�6�2�D��H�H�T�N��!�!�$��,��#�#�?�;�D��H�H�T�N��!�!�$��,��#�#��(;�(;�(=�>�D��H�H�T�N��!�!�$��,�+�H���|�H��s
�G)H6�6
Ic���[R"SS9nUR[RRU55 [R"U5 g![R"W5 f=f)Nr�r�)rrkrSrHrIr�r)rrIs  r�test_path_is_absolute�!TestMkdtemp.test_path_is_absolute~sG��	��#�#��,�D��O�O�B�G�G�M�M�$�/�0��H�H�T�N��B�H�H�T�N�s�AA�A3r0rG)r1r2r3r4r�rrArJrUr\rbrr�r�r#r�rHrVr�r�r�r�rr5r0rrr�r��s|���"��(7�
E�	 ���(�(��)��"������D��*<�=�=�>�=�4	1�2�,�4rr�c�b^�\rSrSrSrU4SjrU4Sjr"SS5rSSjrSr	S	r
S
rU=r$)�
TestMktempi�zTest mktemp().c�V>�[R"5Ul[TU]5 gr�)rrkrWr�rDr�s �rrD�TestMktemp.setUp�s����#�#�%���
��
�rc�>�UR(a'[R"UR5 SUl[TU]5 gr�)rWrHrr��tearDownr�s �rr�TestMktemp.tearDown�s,����8�8��H�H�T�X�X���D�H�
���rc�P�\rSrSr\R
r\Rr	Sr
SrSrg)�TestMktemp.mktempedi�c��[R"XUS9Ul[R"[R
"URURS55 g)Nr�r()rr;rVrHr�r�r,)rrWrXrYs    rr3�TestMktemp.mktemped.__init__�s7�� ���C�C�H�D�I�
�H�H�R�W�W�T�Y�Y����e�<�=rc�:�URUR5 gr�)r9rVrs rr:�TestMktemp.mktemped.__del__�s���L�L����#r)rVN)
r1r2r3r4rHr>r9rr<r,r3r:r5r0rr�mktempedr�s ���)�)���)�)��	>�	$rrc��URURX5nURURURX5 U$r�)rrWr_rV)rrXrYrs    rrA�TestMktemp.do_create�s3���}�}�T�X�X�s�0�����t�y�y�$�(�(�C�5��rc��UR5 URSS9 URSS9 URSSS9 URSSS9 gr�r�rs rrJ�TestMktemp.test_basic��H���������3������3������3�C��(����4�V��,rc��[[[55nUHnURSS9X'M A[R
"5 grX)rYr�r�rArr`rZs   rr��TestMktemp.test_many�s<���e�J�'�(���A����4��0�F�I������rr�)rr)
r1r2r3r4r�rDrrrArJr�r5r�r�s@rr
r
�s.������$�$��-��rr
c��\rSrSrSrSSjrSrSrSrSr	S	r
S
rSrSr
S
rSrSrSrSrSrSrSrSrg)�TestNamedTemporaryFilei�zTest NamedTemporaryFile().Nc��Uc[R"5n[R"XUUS9nURURXU5 U$)N)rWr�r�r�)rrorhr_rV)rrWrXrYr�rs      rrA� TestNamedTemporaryFile.do_create�sG���;��%�%�'�C��*�*�s�s�28�:��	
���t�y�y�#�C�0��rc��UR5 URSS9 URSS9 URSSS9 URSSS9 gr�r�rs rrJ�!TestNamedTemporaryFile.test_basic�rrc��UR5n[R"U5nURnURnAU"S5 AU"S5 A[R
"SS9(aUR
U"55 gg)N�foosbarT)�cpython)rA�weakref�refr�r�check_impl_detail�assertIsNone)rr��wrr��write2s     r�test_method_lookup�)TestNamedTemporaryFile.test_method_lookup�si��
�N�N���
�[�[��^����������
�
�f�
���v����$�$�T�2����b�d�#�3rc�^�/SQmU4Sjn[U"55Hup#URUTU5 M URW[T5S-
5 g)N)sspam
seggs
sbeans
c�>�[R"SS9nURSRT55 UR	S5 U$)N�w+b�rrr)rrhr�r�seek)r��liness �r�	make_file�3TestNamedTemporaryFile.test_iter.<locals>.make_file�s7����+�+��7�A�
�G�G�C�H�H�U�O�$�
�F�F�1�I��Hrrg)�	enumeraterOrK)rr5r��lr4s    @r�	test_iter� TestNamedTemporaryFile.test_iter�sP���3��	�
�i�k�*�D�A����Q��a��)�+�����C��J��N�+rc��[R"5nUR[RRUR5SUR-5 g)Nz$NamedTemporaryFile %s does not exist)rrhrSrHrI�existsrVr�s  r�test_creates_named�)TestNamedTemporaryFile.test_creates_named�s<���'�'�)����������q�v�v�.�>����G�	Irc���[R"5n[R"US9nURS5 SSS5 UR	[
R"U5/5 UR[
RRWR5SUR-5 [
R"U5 g!,(df   N�=f![
R"U5 f=f)Nr�rDz(NamedTemporaryFile %s exists after close)rrkrhr�rOrHr�r�rIr<rVr�rrWr�s   r�test_del_on_close�(TestNamedTemporaryFile.test_del_on_close�s������ ��	��,�,��5������ �6����R�Z�Z��_�b�1����R�W�W�^�^�A�F�F�3�B�Q�V�V�K�
M�
�H�H�S�M�
6�5��
�H�H�S�M�s"�C�C�A4C�
C�C�C1c�
�[R"5nSn[R"USS9nURnUR	S5 UR5 UR
[RRUR5SUR-5 Ub[R"U5 [R"U5 g!Ub[R"U5 [R"U5 f=f)NF)rWr�rDz)NamedTemporaryFile %s missing after close)rrkrhrVr�r�rSrHrIr<r>r)rrW�tmpr�s    r�test_dis_del_on_close�,TestNamedTemporaryFile.test_dis_del_on_close
s������ ����
	��+�+��E�B�A��&�&�C�
�G�G�G��
�G�G�I��O�O�B�G�G�N�N�1�6�6�2�C�a�f�f�L�
N����	�	�#���H�H�S�M�����	�	�#���H�H�S�M�s�BC�1Dc��[R"5nURS5 UR5 UR5 UR5 g�N�abc
)rrhr�r�r�s  r�test_multiple_close�*TestNamedTemporaryFile.test_multiple_closes7���'�'�)��	�����	���	�	���	�	���	rc�|^�[R"5mUR[RRTR55 SSS5 UR[RRTR55 U4SjnUR[U5 g!,(df   Nc=f)Nc�@>�T SSS5 g!,(df   g=fr�r0�r�s�r�
use_closed�?TestNamedTemporaryFile.test_context_manager.<locals>.use_closed'������������
)
rrhrSrHrIr<rVr�rr��rrOr�s  @r�test_context_manager�+TestNamedTemporaryFile.test_context_manager"sr���
�
(�
(�
*�a��O�O�B�G�G�N�N�1�6�6�2�3�+������������/�0�	�	
���*�j�1�
+�
*�s�9B-�-
B;c��[R"5n[R"USSS9nURS5 URnUR5 UR
5 UR[RRUR5SUR<S35 SSS5 SSS5 UR
5 UR[RRWR5SUR<S35 SSS5 [R"U5 g!,(df   N�=f!,(df   N�=f!,(df   NG=f![R"U5 f=f)NTF�rWr��delete_on_closerD�NamedTemporaryFile z= is incorrectly deleted on closure when delete_on_close=Falsez" exists after context manager exit)
rrkrhr�rVr��subTestrSrHrIr<r�r)rrWr��f_names    r�:test_context_man_not_del_on_close_if_delete_on_close_false�QTestNamedTemporaryFile.test_context_man_not_del_on_close_if_delete_on_close_false,s��
��� ��	��,�,��48�=B�D�GH����� ��������	��\�\�^��O�O�B�G�G�N�N�1�6�6�$:�1�!�&�&��<L�M�N�$�
D������ � ���������!7�#6�q�v�v�j�A>�"?�@� �
�H�H�S�M�$�^��
D�D�� ���
�H�H�S�M�sT�E/�>E
�+A	D<�4E
�<E/�A	E�E/�<
E
	�E
�
E�E/�
E,�(E/�/Fc�t�[R"5n[R"USSS9nURS5 UR	5 [
R"UR5 SSS5 [
R"U5 g!,(df   N%=f![
R"U5 f=f�NTFrWrD)	rrkrhr�r�rHr>rVrr@s   r�&test_context_man_ok_to_delete_manually�=TestNamedTemporaryFile.test_context_man_ok_to_delete_manuallyHs������ ��		��,�,��48�=B�D�GH����� ����	��	�	�!�&�&�!�D�
�H�H�S�M�D�D��
�H�H�S�M�s#�B�AB�/B�
B�B�B7c��[R"5nSn[R"USSS9nURS5 URnSSS5 UR[RRWR5SUR<S35 [R"U5 [R"U5 g!,(df   N�=f![R"U5 [R"U5 f=f)NrFTrWrDrYz exists after close)rrkrhr�rVrSrHrIr<r>r)rrWr[r�s    r�(test_context_man_not_del_if_delete_false�?TestNamedTemporaryFile.test_context_man_not_del_if_delete_falseWs������ ����
	��,�,��U�=A�C�FG����� �����C�
�O�O�B�G�G�N�N�1�6�6�2�-�a�f�f�Z�7J�K�
M�
�I�I�f���H�H�S�M�C�C��
�I�I�f���H�H�S�M�s#�C�C
�
AC�

C�C�.D	c�:�Sn[R"5 [R"5nU"U5nUR	[
RRU5SU<S35 [
R"U5 g![
R"U5 f=f)Nc�l�[R"USSS9nURnURS5 U$r_)rrhrVr��rWr��tmp_names   r�my_func�=TestNamedTemporaryFile.test_del_by_finalizer.<locals>.my_funcjs6���+�+��D�<A�C�A��v�v�H�
�G�G�G���OrrYz exists after finalizer )	�gc�collectrrkr�rHrIr<r)rrirWrhs    r�test_del_by_finalizer�,TestNamedTemporaryFile.test_del_by_finalizergsu��	�	�
�
����� ��	��s�|�H����R�W�W�^�^�H�5�-�h�\�:2�3�
4�
�H�H�S�M��B�H�H�S�M�s�<B�Bc�D�S[4Sjn[R"5 g)N�returnc��[R"USSS9nURnURS5 UR	5 [
R"U5 U$r_)rrhrVr�r�rHr>rgs   rri�VTestNamedTemporaryFile.test_correct_finalizer_work_if_already_deleted.<locals>.my_func�sI���+�+��D�<A�C�A��v�v�H�
�G�G�G��
�G�G�I��I�I�h���Or)rrkrl)rris  r�.test_correct_finalizer_work_if_already_deleted�ETestNamedTemporaryFile.test_correct_finalizer_work_if_already_deleted}s��	�#�	�	�
�
�rc���[R"5nUR[RU5 UR[5 [R"SUS9 SSS5 UR[5 [R"SUS9 SSS5 UR[R"U5/5 g!,(df   Nh=f!,(df   NF=f�Nr+)rrW�)rrk�
addCleanuprr�rr�rhr rOrHr�ras  r�
test_bad_mode�$TestNamedTemporaryFile.test_bad_mode�s������ �����	�(�(�#�.�
�
�
�z�
*��'�'�T�s�;�+�
�
�
�y�
)��'�'�Q�C�8�*�������C��"�-�	+�
*��
)�
)���C�>C�
C�
C"c�D�[R"5nUR[RU5 UR[5 [R"SSUS9 SSS5 UR[R"U5/5 g!,(df   N5=f�N�wzbad-encoding)r�rW)rrkrxrr�r�LookupErrorrhrOrHr�ras  r�test_bad_encoding�(TestNamedTemporaryFile.test_bad_encoding�sj����� �����	�(�(�#�.�
�
�
�{�
+��'�'��n�#�N�,�������C��"�-�,�
+���B�
Bc��[R"5nUR[RU5 [
R"S5n[
R"S[
R"55n[5Ul	UR[5 [R"US9 SSS5 SSS5 SSS5 W"5RR5 UR[R "U5/5 g!,(df   Nd=f!,(df   Nm=f!,(df   Nv=f)Nztempfile._TemporaryFileWrapperzio.openr�)rrkrxrr�r�patch�	mock_open�KeyboardInterrupt�side_effectrrhr��
assert_calledrOrHr�)rrW�mock_ntfr�s    r�test_unexpected_error�,TestNamedTemporaryFile.test_unexpected_error�s������ �����	�(�(�#�.�
�Z�Z�8�
9�X�
�Z�Z�	�4�>�>�#3�
4�	�#4�#6�H� ��"�"�#4�5��+�+��4�6�5�:�
	����'�'�)�������C��"�-�6�5��5�
4��:�
9�s<�+D1�7%D �D�1D �9D1�
D�D � 
D.	�*D1�1
D?r0)NrrT)r1r2r3r4r�rArJr-r9r=rArErJrTr\r`rcrmrsryr�r�r5r0rrrr�s[��$��-�$� ,�I�
�� �2��8
�� �,
�.�.�	.rrc�8�\rSrSrSrS SjrSrSrSrSr	S	r
\R"\
RS
5S5rSrS
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr \R"\
RS
5S5r!Sr"Sr#g)!�TestSpooledTemporaryFilei�zTest SpooledTemporaryFile().Nc�`�Uc[R"5n[R"XX4S9nU$)N)�max_sizerWr�r�)rrors)rr�rWrXrYrs      rrA�"TestSpooledTemporaryFile.do_create�s-���;��%�%�'�C��,�,�h�PS�`���rc��UR5nURUR5 URSSSS9nURUR5 g)Nrr�rI)r�rXrY)rAr��_rolledr�s  rrJ�#TestSpooledTemporaryFile.test_basic�sF���N�N���������#��N�N�C�S�f�N�=��������#rc�`�URUR5[R5 gr�)r�rA�io�IOBasers r�test_is_iobase�'TestSpooledTemporaryFile.test_is_iobase�s�����d�n�n�.��	�	�:rc�|�1Skn[[[R55nX-
nUR	US5 g)N>r�r3�tellr��flush�read1r��closed�detach�errors�fileno�isatty�__exit__�__iter__�__next__r��newlines�readable�readinto�readline�seekable�truncate�writable�	__enter__�	readinto1�	readlines�
writelineszMSpooledTemporaryFile missing attributes from IOBase/BufferedIOBase/TextIOBase)r�rWrrsr�)r�iobase_attrs�spooledtempfile_attrs�
missing_attrss    r�test_iobase_interface�.TestSpooledTemporaryFile.test_iobase_interface�s?��	
��!$�C��(E�(E�$F� G��$�<�
�����
/�	
rc�\�[R"5n[R"SUS9nURUR5 URS5 UR
UR5 URnUR5 UR[R"U5/5 [U[5(d2UR[RRU5SU-5 [R "U5 g![R "U5 f=f)N�
)r�rWsblat blat blat blat blat z*SpooledTemporaryFile %s exists after close)rrkrsr�r�r�rSrVr�rOrHr�rM�intrIr<r)rrWr��filenames    rrA�*TestSpooledTemporaryFile.test_del_on_close�s������ ��	��-�-�r�s�C�A����Q�Y�Y�'�
�G�G�L�!��O�O�A�I�I�&��v�v�H�
�G�G�I����R�Z�Z��_�b�1��h��,�,�� � �������!9�@�8�K�M�
�H�H�S�M��B�H�H�S�M�s�C%D�D+c��URSS9nURS5 URURS5 UR	[
5 UR
5 SSS5 g!,(df   g=f)Nr��r�r%)rAr�rOrV�assertWarns�ResourceWarningr:r�s  r�test_del_unrolled_file�/TestSpooledTemporaryFile.test_del_unrolled_file�sV��
�N�N�B�N�'��	������������&�
�
�
�o�
.�
�I�I�K�/�
.�
.�s�A,�,
A:z&Emscripten cannot fstat renamed files.c��URSS9nURS5 URnUR[R
R
U55 UR[5 UR5 SSS5 UR[R
R
U5SU-5 g!,(df   NA=f)Nrwr�r%z9Rolled SpooledTemporaryFile (name=%s) exists after delete)rAr�rVrSrHrIr<r�r�r:r�)rr�rVs   r�test_del_rolled_file�-TestSpooledTemporaryFile.test_del_rolled_file�s���
�N�N�A�N�&��	������v�v����������t�,�-�
�
�
�o�
.�
�I�I�K�/�����G�G�N�N�4� �G�$�N�	
�/�
.�s�0B<�<
C
c��URSS9nURUR5 [S5H&nUR	SS5 URS5 M( URUR5 g)N�r��r�xxxxxxxxxxxxxxxxxxxx)rAr�r�r�r3r�)rr�r�s   r�test_rewrite_small�+TestSpooledTemporaryFile.test_rewrite_smalls_���N�N�B�N�'��������#��q��A�
�F�F�1�a�L�
�G�G�I���	
������#rc�`�URSS9nURUR5 URS5 URUR5 URS5 URUR5 URS5 UR	UR5 g)Nr�r�r��
xxxxxxxxxx�x)rAr�r�r�rSr�s  r�test_write_sequential�.TestSpooledTemporaryFile.test_write_sequential	s}��
�N�N�B�N�'��������#�	���	��������#�	���	��������#�	����
�����	�	�"rc���UR5nURS5 URS5nURUS5 UR	5nURUS5 g)N)r��y�zr�xyz�rAr�r3rOr��rr��pos�bufs    r�test_writelines�(TestSpooledTemporaryFile.test_writelinessS���N�N���	���'�(��f�f�Q�i������a� ��f�f�h������f�%rc��^^�TRSS9mUU4SjnTRU"55 TRS5nTRUS5 TR	5nTRUS5 g)Nrwr�c3�># �Sv� TRTR5 Sv� TRTR5 g7f)Nsxyr�)r�r�rS)r�rs��r�it�=TestSpooledTemporaryFile.test_writelines_rollover.<locals>.it"s2�����K����Q�Y�Y�'��J��O�O�A�I�I�&�s�AArr�r�)rr�r�r�r�s`   @r�test_writelines_rollover�1TestSpooledTemporaryFile.test_writelines_rollovers`����N�N�A�N�&��	'�	
���R�T���f�f�Q�i������a� ��f�f�h������f�%rc�*�URSS9nURS5 URUR5 UR	/SQ5 URS5nUR
US5 UR5nUR
US5 g)Nrwr�sabc)�d�e�frsabcdef)rAr�rSr�r�r3rOr�r�s    r�test_writelines_fast_path�2TestSpooledTemporaryFile.test_writelines_fast_path.sr���N�N�A�N�&��	���������	�	�"�	���'�(��f�f�Q�i������a� ��f�f�h������i�(rc���URSS9nURS5 URUR5 UR	S5 URUR5 g)N�#r�)r�r�sxxxxxr�)rAr�r�r�r�rSr�s  r�test_writelines_sequential�3TestSpooledTemporaryFile.test_writelines_sequential:sN��
�N�N�B�N�'��	���5�6�������#�	����
�����	�	�"rc�.�URSS9nURUR5 URSS5nUR	US5 URUR5 URS5 UR
UR5 g)Nr�r�rrr�)rAr�r�r3rOr�rS)rr�r�s   r�test_sparse�$TestSpooledTemporaryFile.test_sparseCsr��
�N�N�B�N�'��������#��f�f�S�!�n������c�"�������#�	����
�����	�	�"rc���URSS9nURUR5 URUR	5S:�5 URUR5 g)Nr�r�r)rAr�r�rSr�r�s  r�test_fileno�$TestSpooledTemporaryFile.test_filenoNsJ���N�N�B�N�'��������#�������
�Q��'�����	�	�"rc���[R"5nURS5 URUR5 UR5 UR5 UR5 grH)rrsr�r�r�r�r�s  r�#test_multiple_close_before_rollover�<TestSpooledTemporaryFile.test_multiple_close_before_rolloverUsI���)�)�+��	�����������#�	���	�	���	�	���	rc���[R"SS9nURS5 URUR5 UR5 UR5 UR5 g)Nrgr�rI)rrsr�rSr�r�r�s  r�"test_multiple_close_after_rollover�;TestSpooledTemporaryFile.test_multiple_close_after_rollover^sI���)�)�1�5��	���������	�	�"�	���	�	���	�	���	rc���URSS9nURnURnURnU"S5 U"S5 U"SS5 UR	U"S5S5 g)Nr�r�s#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbr�FsFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb)rAr�r�r3rO)rr�r�r�r3s     r�test_bound_methods�+TestSpooledTemporaryFile.test_bound_methodsgs]��
�N�N�B�N�'���v�v�������v�v��
�i��
�i���Q��
�����b��#4�5rc��[R"SS9nURS5 URUR5 URURS5 URUR5 UR[5 UR SSS5 UR[5 UR SSS5 UR[5 UR SSS5 URS5 URUR5 URURS5 URUR5 UR[5 UR SSS5 UR[5 UR SSS5 UR[5 UR SSS5 g!,(df   GNE=f!,(df   GN-=f!,(df   GN=f!,(df   N�=f!,(df   N�=f!,(df   g=f)Nr�r�r�r1r�zrb+)rrsr�r�r�rOrr*rVrr�r�r�r�rS�assertIsNotNoner�s  r�test_properties�(TestSpooledTemporaryFile.test_propertiesusf���)�)�2�6��	���	��������#��������'����!�&�&�!�
�
�
�~�
.�
�J�J�/�
�
�
�~�
.�
�J�J�/�
�
�
�~�
.�
�H�H�/�	
����
�����	�	�"��������'����Q�V�V�$�
�
�
�~�
.�
�J�J�/�
�
�
�~�
.�
�J�J�/�
�
�
�~�
.�
�H�H�/�
.�/�
.��
.�
.��
.�
.��/�
.��
.�
.��
.�
.�sH�

G�7
G*�!
G<�.
H�
H�
H0�
G'�*
G9�<
H�
H�
H-�0
H>c��[R"SSSS9nURS5 URS5 UR	UR5S5 URS5 URS5 UR	UR5S5 UR
UR5 UR	URS5 URUR5 UR	UR[R5 UR	URS5 UR	URS	5 URS
5 URS5 UR	UR5S5 URS5 URS5 UR	UR5S
5 UR!UR5 UR	URS5 UR#UR5 UR	UR[R5 UR	URS5 UR	URS	5 g)N�w+r��utf-8)rr�r�zabc
rzdef
zabc
def
�strictzxyzzy
zabc
def
xyzzy
zfoobar
zabc
def
xyzzy
foobar
)rrsr�r3rOr�r�r�rr*rVr�rH�linesepr�r�rSr�r�s  r�test_text_mode�'TestSpooledTemporaryFile.test_text_mode�s���
�)�)�t�b�3:�
<��	�����	���q�	��������7�+�	�����	���q�	��������<�0�������#��������&����!�&�&�!�������R�Z�Z�0�������W�-�������8�,�	���	��	���q�	��������#6�7�	�����	���q�	��������#B�C�����	�	�"��������&����Q�V�V�$�������R�Z�Z�0�������W�-�������8�,rc���[R"SSSSSS9nURS5 URS5 UR	UR5S5 UR
UR5 UR	URS5 URUR5 URUR5 UR	URS5 UR	URS5 URS	5 URS
5 URS5 UR	UR5S5 URUR5 UR	URS5 URUR5 URUR5 UR	URS5 UR	URS5 g)Nr�r�rr�r:)rr��newliner�r�uΛ
ruΜΜΜΜΜΜΜΜΜΜ
u(ΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝuBΛ
ΜΜΜΜΜΜΜΜΜΜ
ΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝ)rrsr�r3rOr�r�r�rr*rVr�r�r�r�rSr�s  r�test_text_newline_and_encoding�7TestSpooledTemporaryFile.test_text_newline_and_encoding�sm���)�)�t�b�24�w�19�
;��	
�����	���q�	��������<�0�������#��������&����!�&�&�!����Q�Z�Z�(�������W�-�������8�,�	���&�'�	���
��	���q�	��������I�	K�����	�	�"��������&����Q�V�V�$����Q�Z�Z�(�������W�-�������8�,rc�<^�[R"SS9mURTR5 URTR5 SSS5 URTR5 U4SjnUR
[U5 g!,(df   NF=f)Nrgr�c�@>�T SSS5 g!,(df   g=fr�r0rNs�rrO�QTestSpooledTemporaryFile.test_context_manager_before_rollover.<locals>.use_closed�rQrR)rrsr�r�r�rSrr�rSs  @r�$test_context_manager_before_rollover�=TestSpooledTemporaryFile.test_context_manager_before_rollover�sn���
�
*�
*�A�
6�!����Q�Y�Y�'����Q�X�X�&�7�	
������!�	�	
���*�j�1�7�
6�s�7B
�
Bc�^�[R"SS9mURTR5 TR	S5 TR5 UR
TR5 URTR5 SSS5 UR
TR5 U4SjnUR[U5 g!,(df   NF=f)Nrgr�rIc�@>�T SSS5 g!,(df   g=fr�r0rNs�rrO�QTestSpooledTemporaryFile.test_context_manager_during_rollover.<locals>.use_closed�rQrR)
rrsr�r�r�r�rSr�rr�rSs  @r�$test_context_manager_during_rollover�=TestSpooledTemporaryFile.test_context_manager_during_rollover�s����
�
*�
*�A�
6�!����Q�Y�Y�'�
�G�G�H��
�G�G�I��O�O�A�I�I�&����Q�X�X�&�7�	
������!�	�	
���*�j�1�7�
6�s�A3C	�	
Cc�^�[R"SS9mTRS5 TR5 UR	TR
5 T UR
TR5 SSS5 UR	TR5 U4SjnUR[U5 g!,(df   NF=f)Nrgr�rIc�@>�T SSS5 g!,(df   g=fr�r0rNs�rrO�PTestSpooledTemporaryFile.test_context_manager_after_rollover.<locals>.use_closed�rQrR)
rrsr�r�rSr�r�r�rr�rSs  @r�#test_context_manager_after_rollover�<TestSpooledTemporaryFile.test_context_manager_after_rollover�s�����)�)�1�5��	�����	���	�����	�	�"�
����Q�X�X�&��������!�	�	
���*�j�1�
�Q�s�B0�0
B>c�.�[R"SS9nURS5 URS5 UR	5 URUR5 URURR5S5 [R"SS9nURS5 UR	S5 URUR5 URURR5S5 [R"SS9nURS5 UR	S5 URUR5 UR[R"UR55RS5 g)	Nr�r�sabcdefg
rr�sabcdr�)rrsr�r3r�r�r�rO�_file�getvaluerSrH�fstatr��st_sizer�s  r�!test_truncate_with_size_parameter�:TestSpooledTemporaryFile.test_truncate_with_size_parameter�s��

�)�)�2�6��	�����	���q�	�	�
�
��������#�������)�)�+�S�1��)�)�2�6��	�����	�
�
�1�
�������#�������)�)�+�W�5��)�)�2�6��	�����	�
�
�2������	�	�"�������!�(�(�*�-�5�5�r�:rc�n�UR[R[[R
5 gr�)r�rrsr�types�GenericAliasrs r�test_class_getitem�+TestSpooledTemporaryFile.test_class_getitems&�����h�;�;�E�B��(�(�	*rr0)rNrr)$r1r2r3r4r�rArJr�r�rAr�r#r$rr%r�r�r�r�r�r�r�r�r�r�r�r�r�rrr
rrrr!r5r0rrr�r��s���&��$�;�
�*�"��_�_����G��

��

�$�
#�&�&� 	)�#�	#�#���6��0-�@-�4	2�2�2��_�_����G��;��;�**rr�c�B�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rg)�TestTemporaryFileizTest TemporaryFile().c�.�[R"5 gr�)rrirs rrJ�TestTemporaryFile.test_basics��
�"�"�$rc��[R"5n[R"US9nURS5 [R
"U5 g! UR
5 [R
"U5 e=fr_)rrkrir�rHrr�r@s   r�test_has_no_name�"TestTemporaryFile.test_has_no_namesZ���"�"�$�C��&�&�3�/�A�
�G�G�G��
�����
��
����	�����
��s�A�)A<c��[R"5nURS5 UR5 UR5 UR5 grH)rrir�r�r�s  rrJ�%TestTemporaryFile.test_multiple_close$s7���&�&�(�A�
�G�G�H��
�G�G�I�
�G�G�I�
�G�G�Irc�V^�U4SjnU"SS5 U"SS5 U"SSSS9 U"S	SS
S9 g)Nc��>�[R"U0UD6nURU5 URS5 TR	XR55 SSS5 g!,(df   g=fr�)rrir�r3rOr�)�inputr�r��fileobjrs    �r�	roundtrip�;TestTemporaryFile.test_mode_and_encoding.<locals>.roundtrip/sO����+�+�T�<�V�<���M�M�%�(��L�L��O��$�$�U�L�L�N�;�=�<�<�s�AA#�#
A1s1234r1zabdc
r�uΛzutf-16r�zfoo
r)rr0)rr0s` r�test_mode_and_encoding�(TestTemporaryFile.test_mode_and_encoding-s6���
<�
�g�u�%��h��%��h��x�8��i��r�2rc���[R"5nUR[RU5 UR[5 [R"SUS9 SSS5 UR[5 [R"SUS9 SSS5 UR[R"U5/5 g!,(df   Nh=f!,(df   NF=frv)rrkrxrr�rr�rir rOrHr�ras  rry�TestTemporaryFile.test_bad_mode:s����"�"�$�C��O�O�I�,�,�c�2��"�"�:�.��&�&�D�c�:�/��"�"�9�-��&�&�A�3�7�.����R�Z�Z��_�b�1�	/�.��-�-�r{c�D�[R"5nUR[RU5 UR[5 [R"SSUS9 SSS5 UR[R"U5/5 g!,(df   N5=fr})rrkrxrr�rrrirOrHr�ras  rr��#TestTemporaryFile.test_bad_encodingCsj���"�"�$�C��O�O�I�,�,�c�2��"�"�;�/��&�&�s�^��M�0����R�Z�Z��_�b�1�0�/�r�c
��[R"5nUR[RU5 [
R"SS5 [
R"S5n[
R"S5n[
R"S5n[5UlUR[5 [R"US9 SSS5 SSS5 SSS5 SSS5 SSS5 WR5 UR[R"U5/5 g!,(df   Ne=f!,(df   Nn=f!,(df   Nw=f!,(df   N�=f!,(df   N�=f)Nztempfile._O_TMPFILE_WORKSFz	os.unlinkzos.openzos.closer�)rrkrxrr�rr�r�r�rrir�rOrHr�)rrW�mock_unlinkr��
mock_closes     rr��'TestTemporaryFile.test_unexpected_errorJs����"�"�$�C��O�O�I�,�,�c�2����7��?����K�(�K����I�&�)����J�'�:�*;�*=��'��&�&�'8�9��*�*�s�3�:�(�'�)�@�
�$�$�&����R�Z�Z��_�b�1�:�9��(�'��'�&��)�(��@�?�sl�
E/�$E�;E
�%D<	�7D+�D<	�E
�E�$E/�+
D9�5D<	�<
E

�E
�
E�E�
E,	�(E/�/
E=r0N)
r1r2r3r4r�rJr(rJr2ryr�r�r5r0rrr$r$s(��#�	%�
	� 	�	3�	2�	2�	2rr$c�&�\rSrSrSrSrSrSrg)�
NulledModulesiYc��UVs/sHo"RPM snUlURVs/sHo3R5PM snUlgs snfs snfr�)rv�refs�copy�contents)r�modules�modr(s    rr3�NulledModules.__init__Zs@��-4�5�W�c�\�\�W�5��	�/3�y�y�9�y�����y�9��
��6��9s
�A�Ac�D�URHnUHnSX'M	 M gr�)r?)rr�r{s   rr��NulledModules.__enter__^s!�����A�������rc��[URUR5H&up#UR5 UR	U5 M( gr�)�zipr?rA�clear�update)r�exc_infor�r�s    rr��NulledModules.__exit__cs1����	�	�4�=�=�1�D�A�
�G�G�I�
�H�H�Q�K�2r)rAr?N)r1r2r3r4r3r�r�r5r0rrr=r=Ys��:��
rr=c�>�\rSrSrSrSSjrS SjrSrSrSr	\
R"\RS	:HS
5S5r\
R"\RS	:HS
5S5r\R"S
5r\R"S5r\
R"\"\S5S5\R"S55r\R.S5r\R.S5rSrSrSrSrSrSrSr Sr!\
R"\"\S5S5S5r"Sr#Sr$g)!�TestTemporaryDirectoryiizTest TemporaryDirectory().Nc���Uc[R"5n[R"XUUS9nURURXU5 URURXEU5 U$)N)rWr�r��ignore_cleanup_errors)rrortr_rV�
do_create2)	rrWrXrY�recurse�dirs�filesrPrDs	         rrA� TestTemporaryDirectory.do_createls\���;��%�%�'�C��)�)���"7�9��	
���s�x�x��3�/�������'��7��
rc��U(a`[U5HQn[RRUSU-5n[R"U5 URXbS-
X45 MS [U5HJn[
[RRUSU-5S5nURS5 SSS5 ML g!,(df   M^=f)Nzdir%drgz
test%d.txtrsHello world!)r�rHrIrrrQr�r�)rrIrRrSrTr�rVr�s        rrQ�!TestTemporaryDirectory.do_create2ws�����4�[���w�w�|�|�D�'�A�+�6�����������a�i��=�!��u��A��b�g�g�l�l�4���)9�:�D�A�Q�����(�B�A��A�A�s�#C�
C	c�R�[R"5nSSS5 UR[5n[R"WS9 SSS5 UR	WR
R[R5 g!,(df   Nu=f!,(df   NT=fr�)rrtrr�rO�	exception�errno�ENOENT)rr�cms   r�test_mkdtemp_failure�+TestTemporaryDirectory.test_mkdtemp_failure�sl���
(�
(�
*�k��+�
�
�
�0�
1�R��'�'�K�8�2�������+�+�U�\�\�:�	+�
*��
1�
1�s�B�B�
B�
B&c���[R"5nURUS9nUR[R
R
UR5SUR-5 UR5 UR[R
R
UR5SUR-5 [R"U5 g![R"U5 f=f)Nr�z$TemporaryDirectory %s does not exist�*TemporaryDirectory %s exists after cleanup)rrkrArSrHrIr<rV�cleanupr�r)rrWr�s   r�test_explicit_cleanup�,TestTemporaryDirectory.test_explicit_cleanup�s������ ��	����3��'�A��O�O�B�G�G�N�N�1�6�6�2�B�Q�V�V�K�
M�
�I�I�K����R�W�W�^�^�A�F�F�3�D�q�v�v�M�
O�
�H�H�S�M��B�H�H�S�M�s�B+C�C1c
�L�[R"5nURUSS9n[R"UR
5nUR
UR5SU<S35 [US-S5nURS5 UR5 SSS5 UR[[URS	555[[ R"R%S
55SU<35 URUR5[ R"R%S
5SU<S35 UR5 UR'UR5SU<S
35 SSS5 g!,(df   N�=f!,(df   g=f)z=Test that cleanup doesn't return an error when ignoring them.T�rWrP�TemporaryDirectory � does not exist�
a_file.txt�w+t�
Hello world!
N�*�win�1Unexpected number of files in TemporaryDirectory � existence state unexpectedz exists after cleanup)rrtrA�pathlibr-rVrSr<r�r�rarOrKrY�globr�rirjr�r��r�working_dir�temp_dir�	temp_path�	open_files     r�#test_explicit_cleanup_ignore_errors�:TestTemporaryDirectory.test_explicit_cleanup_ignore_errors�sf��
�
(�
(�
*�k��~�~��t�&�=�H����X�]�]�3�I��O�O�I�,�,�.�1�)��o�N�
P��i�,�.��6�)���� 0�1�� � �"�7�
���S��i�n�n�S�&9�!:�;� ����!8�!8��!?�@�3�3<�-�A�
B�
���� � �"����'�'��.�%�i�]�2M�N�
P�
�������� � �"�%�i�]�2G�H�
J�%+�
*�7�6��
+�
*�s%�A%F�;"F�CF�
F	�F�
F#r�r�c��[R"5nURUS9n[[R
R
URS5S5 UR[5 UR5 SSS5 SSS5 SSS5 g!,(df   N=f!,(df   N(=f!,(df   g=f)Nr�zexample.txtr)rrtrAr�rHrIrrVrrra)rrrrss   r�#test_explicit_cleanup_correct_error�:TestTemporaryDirectory.test_explicit_cleanup_correct_error�s���
�
(�
(�
*�k��~�~�+�~�6�H��b�g�g�l�l�8�=�=�-�@�$�G��&�&��7��$�$�&�8�H�+�
*�
8�7��H�G��+�
*�s<�AB<�B+�0B�B+�	B<�
B(�$B+�+
B9	�5B<�<
C
c���[R"5nURUS9n[RRURS5n[R"U5 [R"U5 UR[5 UR5 SSS5 SSS5 SSS5 g!,(df   N=f!,(df   N(=f!,(df   g=f)Nr��subdir)
rrtrArHrIrrVrr�
change_cwdrrra)rrrrsr|s    r� test_cleanup_with_used_directory�7TestTemporaryDirectory.test_cleanup_with_used_directory�s���
�
(�
(�
*�k��~�~�+�~�6�H��W�W�\�\�(�-�-��:�F��H�H�V���%�%�f�-��&�&��7��$�$�&�8�.�	+�
*�8�7��.�-��	+�
*�s<�A&C�<C
�B<�#C
�+C�<
C
�C
�
C	�C�
C,c�v�UR5nURSS9n[R"UR[RRURS55 UR
5 UR[RRUR5SUR-5 UR[RRUR5S5 UR[R"UR5S/S5 UR
5 g)Nr�rR�foor`z-Directory pointed to by a symlink was deletedz	test0.txtz>Contents of the directory pointed to by a symlink were deleted)rArH�symlinkrVrIrrar�r<rSrOr�)r�d1�d2s   r�(test_cleanup_with_symlink_to_a_directory�?TestTemporaryDirectory.test_cleanup_with_symlink_to_a_directory�s����^�^�
��
�^�^�A�^�
&��	�
�
�2�7�7�B�G�G�L�L����%�8�9�	�
�
�������������0�E����O�	Q���������r�w�w�/�G�	I�������B�G�G�,�{�m�(�	)�	�
�
�rc�,^^�TRSS9n[RRUS5n[	US5R5 [RRUS5n[R"U5 [S5GH�mTS-mTR[TS5S	9 UU4S
jnTRS5 U"SS
S9 SSS5 TRS5 U"SSS9 SSS5 TRS5 [R"UT5 [R"U5RnU"US
S9 [R"U5RnTRXeSXe4-5 SSS5 TRS5 [R"UT5 [R"U5RnU"USS9 [R"U5RnTRXeSXe4-5 SSS5 SSS5 GM� SSS5 g!,(df   GNb=f!,(df   GNS=f!,(df   N�=f!,(df   NY=f!,(df   GM�=f!,(df   g=f)Nrr��file1rr�rf�03or2c�>�TRSS9n[RRURS5n[R
"XUS9 [R"UTSS9 [R"UT5 [R"URT5 UR5 TR[RRUR55 g![a N�f=f![a N�f=f�Nrr�r���target_is_directoryF)�follow_symlinks)rArHrIrrVr�r
�NotImplementedErrorr�rar�r<)�targetr�r�r�rrs    ��r�test�DTestTemporaryDirectory.test_cleanup_with_symlink_modes.<locals>.test�s����!�^�^�A�^�6��"$�'�'�,�,�r�w�w�	�"B���
�
�6�4G�I�!��H�H�W�d�E�J�!��H�H�W�d�3�������$�/��
�
���(�(���������)@�A�� 3�!� �!�� 1�!� �!��$�C)�(C9�)
C6�5C6�9
D�D�nonexisting file�nonexistingFr��nonexisting dirT�
existing filez%03o != %03o�existing dir)rArHrIrr�r�rr�rZ�formatr
rrrO)rr�r�rr��old_mode�new_moders`      @r�test_cleanup_with_symlink_modes�6TestTemporaryDirectory.test_cleanup_with_symlink_modes�s�����^�^�A�^�
&�"��G�G�L�L��W�-�E�����#�#�%��7�7�<�<��F�+�D��H�H�T�N��a�����
���\�\�v�d�E�':�\�;�B�"���&8�9��]��F�:����&7�8��]��E�9����o�6������-�#%�7�7�5�>�#9�#9���U��>�#%�7�7�5�>�#9�#9���(�(��)7�8�:N�)N�P�7����n�5�����t�,�#%�7�7�4�=�#8�#8���T�t�<�#%�7�7�4�=�#8�#8���(�(��)7�8�:N�)N�P�6�?<�;�!�'�
&�2:�9��8�8��7�6��6�5��?<�;��'�
&�s��BJ�0I2�	H,	�I2�*H>	�2I2�A5I	�I2�A5I!	�I2�
J�,
H;
�6I2�>
I

�I2�
I
�I2�!
I/
�+I2�2
J�<	J�
J�chflagszrequires os.chflagsc��^^�[R[R-mTRT5 TR	SS9n[
RRUS5n[US5R5 [
RRUS5n[
R"U5 UU4SjnTRS5 U"SS	S
9 SSS5 TRS5 U"SSS
9 SSS5 TRS
5 [
R"UT5 [
R"U5RnU"US	S
9 [
R"U5RnTRXe5 SSS5 TRS5 [
R"UT5 [
R"U5RnU"USS
9 [
R"U5RnTRXe5 SSS5 SSS5 g!,(df   GNK=f!,(df   GN<=f!,(df   N�=f!,(df   NL=f!,(df   g=f)Nrr�r�rrc�>�TRSS9n[RRURS5n[R
"XUS9 [R"UTSS9 [R"UT5 [R"URT5 UR5 TR[RRUR55 g![a N�f=f![a N�f=fr�)rArHrIrrVr�r�r�r�rar�r<)r�r�r�r�r1rs    ��rr��DTestTemporaryDirectory.test_cleanup_with_symlink_flags.<locals>.tests�����^�^�A�^�.���'�'�,�,�r�w�w�	�:���
�
�6�/B�D���J�J�w��u�E���J�J�w��.��
�
�2�7�7�E�*��
�
��� � ���������!8�9��+�����)����r�r�r�Fr�r�Tr�r�)r�UF_IMMUTABLE�UF_NOUNLINK�check_flagsrArHrIrr�r�rrZr��st_flagsrO)rr�r�rr��	old_flags�	new_flagsr1s`      @r�test_cleanup_with_symlink_flags�6TestTemporaryDirectory.test_cleanup_with_symlink_flags
s�����!�!�D�$4�$4�4�������
�^�^�A�^�
&�"��G�G�L�L��W�-�E�����#�#�%��7�7�<�<��F�+�D��H�H�T�N�
:�"���0�1��]��>�2����/�0��]��=�1����o�.��
�
�5�%�(��G�G�E�N�3�3�	��U��6��G�G�E�N�3�3�	�� � ��6�/����n�-��
�
�4��'��G�G�D�M�2�2�	��T�t�4��G�G�D�M�2�2�	�� � ��6�.�E'�
&�,2�1��0�0��/�.��.�-��E'�
&�so�B	I�
H�I�.H+�6I�A0H=�?I�A0I�I�
H(	�#I�+
H:	�5I�=
I	�I�
I	�I�
I-c�.�[R"5nURUS9nURnAUR	[
RRU5SU-5 [
R"U5 g![
R"U5 f=f)Nr��*TemporaryDirectory %s exists after __del__)	rrkrArVr�rHrIr<r�rrWr�rVs    r�test_del_on_collection�-TestTemporaryDirectory.test_del_on_collection=sr����� ��	����3��'�A��6�6�D�����R�W�W�^�^�D�1�D�t�K�
M�
�H�H�S�M��B�H�H�S�M�s�AA<�<Bc
���[R"5nURUSS9n[R"UR
5nUR
UR5SU<S35 [US-S5nURS5 ASSS5 UR[[URS	555[[R R#S
55SU<35 URUR5[R R#S
5SU<S35 SSS5 g!,(df   N�=f!,(df   g=f)
z@Test that ignoring errors works when TemporaryDirectory is gced.TrerfrgrhrirjNrkrlrmrn)rrtrAror-rVrSr<r�r�rOrKrYrpr�rirjr�rqs     r�$test_del_on_collection_ignore_errors�;TestTemporaryDirectory.test_del_on_collection_ignore_errorsJs)���
(�
(�
*�k��~�~��t�&�=�H����X�]�]�3�I��O�O�I�,�,�.�1�)��o�N�
P��i�,�.��6�)���� 0�1��7�
���S��i�n�n�S�&9�!:�;� ����!8�!8��!?�@�3�3<�-�A�
B�
���� � �"����'�'��.�%�i�]�2M�N�
P�+�
*�7�6��
+�
*�s%�A%E�;E�B)E�
E	�
E�
Ec���UR5nSH�nSRXS9n[R"SU5upEnUR	5R5nUR
[RRU5SU-5 UR	SS5nURSU5 URS	U5 M� SSS5 g!,(df   g=f)
N)�builtinsrH�shutilrirrAa�if True:
                    import builtins
                    import os
                    import shutil
                    import sys
                    import tempfile
                    import warnings

                    tmp = tempfile.TemporaryDirectory(dir={dir!r})
                    sys.stdout.buffer.write(tmp.name.encode())

                    tmp2 = os.path.join(tmp.name, 'test_dir')
                    os.mkdir(tmp2)
                    with open(os.path.join(tmp2, "test0.txt"), "w") as f:
                        f.write("Hello world!")

                    {mod}.tmp = tmp

                    warnings.filterwarnings("always", category=ResourceWarning)
                    )rWrC�-cr`r��backslashreplace�
Exception �'ResourceWarning: Implicitly cleaning up�rAr�r�assert_python_okr�r�r�rHrIr<r�r�)rrWrC�code�rcr��errrhs        r�test_del_on_shutdown�+TestTemporaryDirectory.test_del_on_shutdown_s���
�^�^�
��R���&��3��0�'�( -�=�=�d�D�I�����:�:�<�-�-�/��� � �������!9�H�8�S�U��j�j��*<�=��� � ��s�3��
�
�G��M�7S��
�
�s�B9C�
C!c
���[R"5nSRUS9n[R"SU5up4n[
R"UR5R55nUR[[URS555[[RR!S55SU<35 URUR#5[RR!S5SU<S35 URS	S
5nUR%SU5 UR%SU5 UR'S
U5 SSS5 g!,(df   g=f)z?Test ignoring errors works when a tempdir is gc'ed on shutdown.a�if True:
                import pathlib
                import sys
                import tempfile
                import warnings

                temp_dir = tempfile.TemporaryDirectory(
                    dir={working_dir!r}, ignore_cleanup_errors=True)
                sys.stdout.buffer.write(temp_dir.name.encode())

                temp_dir_2 = pathlib.Path(temp_dir.name) / "test_dir"
                temp_dir_2.mkdir()
                with open(temp_dir_2 / "test0.txt", "w") as test_file:
                    test_file.write("Hello world!")
                open_file = open(temp_dir_2 / "open_file.txt", "w")
                open_file.write("Hello world!")

                warnings.filterwarnings("always", category=ResourceWarning)
                )rrr�rkrlrmrfrnr�r��	Exception�Errorr�N)rrtr�rr�ror-r�r�rOrKrYrpr�rirjr�r<r�r�)rrrr��__r�r�rts       r�"test_del_on_shutdown_ignore_errors�9TestTemporaryDirectory.test_del_on_shutdown_ignore_errorss3��
�
(�
(�
*�k��$�F�{�F�3�%
�&)�9�9�$��E�L�B�S����S�Z�Z�\�%7�%7�%9�:�I����S��i�n�n�S�&9�!:�;� ����!8�!8��!?�@�3�3<�-�A�
B�
���� � �"����'�'��.�%�i�]�2M�N�
P��*�*�W�&8�9�C����[�#�.����W�c�*��M�M�C�S�I�C+�
*�
*�s�EE$�$
E2c��UR5nSRUS9n[R"SU5up4nUR	5R5nUR
[RRU5SU-5 UR	SS5nURSU5 URSU5 SSS5 g!,(df   g=f)	Na�if True:
                import sys
                import tempfile
                import warnings

                def generator():
                    with tempfile.TemporaryDirectory(dir={dir!r}) as tmp:
                        yield tmp
                g = generator()
                sys.stdout.buffer.write(next(g).encode())

                warnings.filterwarnings("always", category=ResourceWarning)
                r�r�r`r�r�r�r�r�)rrWr�r�r�r�rhs       r�test_exit_on_shutdown�,TestTemporaryDirectory.test_exit_on_shutdown�s���
�^�^�
����F�s�F�O�
�)�9�9�$��E�L�B�S��z�z�|�)�)�+�H����R�W�W�^�^�H�5�D�x�O�
Q��*�*�W�&8�9�C����\�3�/��M�M�C�S�I�)�
�
�s�B0C
�

Cc��UR5nURUSS9nURn[R"S[4SS9 [
R"S[S9 A[R"5 SSS5 UR[RRU5SU-5 SSS5 g!,(df   NI=f!,(df   g=f)	N�)rWrR�
ImplicitlyF)�quiet�always)r<r�)
rArVrr@r�rArBrr`r�rHrIr<r�s    r�test_warnings_on_cleanup�/TestTemporaryDirectory.test_warnings_on_cleanup�s���
�^�^�
�����3���2�A��6�6�D�!�/�/��1@�1B�6;�=��'�'��?�K���"�"�$�=�
���R�W�W�^�^�D�1�D�t�K�
M��
�
=�=���
�s#�8C
�	0B<�9:C
�<
C
	�C
�
Cc��UR5nUR5 UR5 UR5 gr�)rArar�s  rrJ�*TestTemporaryDirectory.test_multiple_close�s)���N�N���	�	�	��	�	�	��	�	�	�rc�J�UR5nUnUR[RR	U55 URX!R5 SSS5 UR[RR	W55 g!,(df   N==fr�)rArSrHrIr<rOrVr�)rr�rVs   rrT�+TestTemporaryDirectory.test_context_manager�sh���N�N���
�$��O�O�B�G�G�N�N�4�0�1����T�6�6�*��	
���������-�.��Q�s�A
B�
B"c��[S5GHnUS-nUR[US5S9 URSSSS9nU [R
"URSS	9HYup4nUH7n[R"[RRX65U5 M9 [R"X15 M[ UR5 SSS5 UR[RRUR55 SSS5 GM g!,(df   NT=f!,(df   GM2=f)
Nr�rfr�r2r�rw�rRrSrTF��topdown)
r�rZr�rArH�walkrVr
rIrrar�r<)rrr��rootrSrTrVs       r�
test_modes�!TestTemporaryDirectory.test_modes�s����!�H�D��Q�J�D����6�$��#6��7��N�N�1�1�A�N�>���-/�W�W�Q�V�V�U�-K�)��E�$)�D��H�H�R�W�W�\�\�$�%=�t�D�%*�����,�.L��I�I�K�
�� � ���������!7�8�8�7���Q��8�7�s%�D.�B
D�AD.�
D+�'D.�.
D>	c�v�[Rn[US5R5 [R
"X!5 [R
"US5 [R"U5 g![a"nURSUSSU35 SnAN>SnAff=f![R"U5 f=f)Nr~rz chflags() doesn't support flags z#bz: )	r�TESTFNr�r�rHr�r�rr>)rr1r��excs    rr��"TestTemporaryDirectory.check_flags�s����#�#��	'���3��%�%�'�
(��
�
�8�+��
�
�8�Q�'����X�&���
4��
�
� @�!&�r�
�"�S�E�3�4�4��
4��
���X�&�s4�B �A1�B �1
B�;B�B �B�B � B8c	�J�[R[R-nURU5 UR	SSSS9nU [
R"URSS9HYup4nUH7n[
R"[
RRX65U5 M9 [
R"X15 M[ UR5 SSS5 UR[
RRUR55 g!,(df   NG=f)Nr�rwr�Fr�)rr�r�r�rArHr�rVr�rIrrar�r<)rr1r�r�rSrTrVs       r�
test_flags�!TestTemporaryDirectory.test_flags�s����!�!�D�$4�$4�4��������N�N�1�1�A�N�6��
�%'�W�W�Q�V�V�U�%C�!��E�!�D��J�J�r�w�w�|�|�D�7��?�"��
�
�4�'�&D�
�I�I�K�
�	
�����������/�0��Q�s
�B
D�
D"c���[R"SS9nSSS5 UR[RRW55 [R"U5 g!,(df   NS=f)NFr�)rrtrSrHrIr<r�r�)rrrs  r�test_delete_false�(TestTemporaryDirectory.test_delete_falsesH��
�
(�
(��
6�+��7���������{�3�4��
�
�k�"�7�
6�s�A$�$
A2r0)NrrrgrgrgF)rgrgrg)%r1r2r3r4r�rArQr]rbrvr#r�rHrVryr~r�skip_unless_symlinkr�r��hasattrr�r�cpython_onlyr�r�r�r�r�r�rJrTr�r�r�r�r5r0rrrNrNis|��$�KL�(-�	�	)�;��J�0������D��*<�=�'�>�'�������D��*<�=�	'�>�	'��"�"��#��(�"�"�.P�#�.P�`�����Y�/�1F�G��"�"�,7�#�H�,7�\
���
��
�
���P��P�(N�@#J�JJ�0M� �/�9�'� �����Y�/�1F�G�1�H�1�#rrN�__main__):rrZr�rHrorirarA�
contextlibrrr'rkr�rr#rr�r�test.supportrrrr=r<r�r�r�rjr�r��TestCaser
r7rdrr�r�r��contextmanagerr�r�r�r'r�r�r�r�r
rr�rhrir$r=rNr1�mainr0rr�<module>r�s�����	�	��
�	������	�
�����"�&�(��(�(�H�,C�,C�C��
�R��
"�
��<�<���9�%�%��J��J�(7�H�-�-�(7�X,2�8�$�$�,2�^7�,�7�<;7�\�;7�~")�|�")�TI�L�I�@
 �L�
 � ������2�3%�3%�ln2�~�|�n2�b���@+4�\�+4�\[,�,�[,�|h�.�,�h�V0��0�|_.�\�_.�F_*�|�_*�B���h�&<�&<�<�I2�L�I2�Z
�
� c#�\�c#�J
�z���M�M�O�r

Youez - 2016 - github.com/yon3zu
LinuXploit